@echo off
echo ========================================
echo Redis连接诊断工具
echo ========================================
echo.

echo 1. 检查网络连通性...
ping -n 1 192.168.100.168 >nul 2>&1
if %errorlevel% equ 0 (
    echo [✓] 网络连通性正常
) else (
    echo [✗] 网络连通性异常
    goto :end
)

echo.
echo 2. 检查Redis端口...
powershell -Command "try { $tcp = New-Object System.Net.Sockets.TcpClient; $tcp.Connect('192.168.100.168', 6379); if($tcp.Connected) { Write-Host '[✓] Redis端口6379连接成功' } else { Write-Host '[✗] Redis端口6379连接失败' }; $tcp.Close() } catch { Write-Host '[✗] Redis端口6379连接异常:' $_.Exception.Message }"

echo.
echo 3. 检查应用配置...
echo [信息] Redis配置:
echo     Host: 192.168.100.168
echo     Port: 6379
echo     Database: 0
echo     Password: 123456
echo     Timeout: 10s

echo.
echo 4. 检查验证码配置...
echo [信息] 验证码类型: math
echo [信息] 验证码过期时间: 2分钟
echo [信息] 验证码Redis Key前缀: captcha_codes:

echo.
echo 5. 可能的问题和解决方案:
echo.
echo 问题1: 验证码请求挂起
echo 原因: Redis序列化器配置问题已修复
echo 解决: 重新编译并启动应用
echo.
echo 问题2: 验证码验证失败
echo 原因: 可能是验证码过期或Redis中的数据被清除
echo 解决: 检查验证码是否在2分钟内输入
echo.
echo 问题3: 用户不存在/密码错误
echo 原因: 这可能是独立的问题，与Redis无关
echo 解决: 检查用户名密码是否正确，数据库连接是否正常
echo.
echo 6. 建议的解决步骤:
echo    1. 重新编译项目: mvn clean compile
echo    2. 重启应用
echo    3. 清除浏览器缓存和Cookie
echo    4. 重新获取验证码
echo    5. 确保在2分钟内完成登录

:end
echo.
echo 诊断完成，按任意键退出...
pause >nul
